package com.singletonapps.evory.dto;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.singletonapps.evory.entities.Course;
import com.singletonapps.evory.entities.CourseTema;

public class CourseDto {
	
	private Long id;
	private String nombre;
	private String descripcion;
	private String courseImagePath;
	private List<String> temas;
	private List<String> temasDesc;
	private List<String> materiales;
	private List<String> materialesDesc;
	private List<String> materialesPaths;
	private List<String> videos;
	private List<String> videosDesc;
	private List<String> videosPaths;
	private String courseThemes;
	private List<CourseTemaDto> temasCurso;
	private List<MaterialDto> materialesCurso;
	private List<CourseVideoDto> videosCurso; 
	private Date dateCreated;
	private Date dateUpdated;
	private int version;
	
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public List<String> getTemas() {
		return temas;
	}
	public void setTemas(List<String> temas) {
		this.temas = temas;
	}
	public List<String> getTemasDesc() {
		return temasDesc;
	}
	public void setTemasDesc(List<String> temasDesc) {
		this.temasDesc = temasDesc;
	}
	public List<String> getMateriales() {
		return materiales;
	}
	public void setMateriales(List<String> materiales) {
		this.materiales = materiales;
	}
	public List<String> getMaterialesDesc() {
		return materialesDesc;
	}
	public void setMaterialesDesc(List<String> materialesDesc) {
		this.materialesDesc = materialesDesc;
	}
	public List<String> getVideos() {
		return videos;
	}
	public void setVideos(List<String> videos) {
		this.videos = videos;
	}
	public List<String> getVideosDesc() {
		return videosDesc;
	}
	public void setVideosDesc(List<String> videosDesc) {
		this.videosDesc = videosDesc;
	}
	
	public String getCourseImagePath() {
		return courseImagePath;
	}
	public void setCourseImagePath(String courseImagePath) {
		this.courseImagePath = courseImagePath;
	}
	
	public String getCourseThemes() {
		return courseThemes;
	}
	public void setCourseThemes(String courseThemes) {
		this.courseThemes = courseThemes;
	}
	public Date getDateCreated() {
		return dateCreated;
	}
	public void setDateCreated(Date dateCreated) {
		this.dateCreated = dateCreated;
	}
	public Date getDateUpdated() {
		return dateUpdated;
	}
	public void setDateUpdated(Date dateUpdated) {
		this.dateUpdated = dateUpdated;
	}
	public int getVersion() {
		return version;
	}
	public void setVersion(int version) {
		this.version = version;
	}
	
	public List<CourseTemaDto> getTemasCurso() {
		return temasCurso;
	}
	public void setTemasCurso(List<CourseTemaDto> temasCurso) {
		this.temasCurso = temasCurso;
	}
	
	public List<String> getMaterialesPaths() {
		return materialesPaths;
	}
	public void setMaterialesPaths(List<String> materialesPaths) {
		this.materialesPaths = materialesPaths;
	}
	
	public List<String> getVideosPaths() {
		return videosPaths;
	}
	public void setVideosPaths(List<String> videosPaths) {
		this.videosPaths = videosPaths;
	}
	
	public List<MaterialDto> getMaterialesCurso() {
		return materialesCurso;
	}
	public void setMaterialesCurso(List<MaterialDto> materialesCurso) {
		this.materialesCurso = materialesCurso;
	}
	
	public List<CourseVideoDto> getVideosCurso() {
		return videosCurso;
	}
	public void setVideosCurso(List<CourseVideoDto> videosCurso) {
		this.videosCurso = videosCurso;
	}
	public Course toEntity(){
		
		Course entity = new Course();
		entity.setCourseName(this.nombre);
		entity.setCourseDescription(this.descripcion);
		entity.setCourseImagePath(this.courseImagePath);
		entity.setCourseThemes(this.courseThemes);
		
		if(this.temasCurso != null){
			List<CourseTema> temas = new ArrayList<CourseTema>();
			for(CourseTemaDto t : this.temasCurso){
				temas.add(t.toEntity());
			}
			entity.setTemasCurso(temas);
		}

		
		entity.setDateCreated(this.dateCreated);
		entity.setDateUpdated(this.dateUpdated);
		entity.setVersion(this.version);
		
		return entity;
	}
	
	
	
}
